1001 Secrets for Windows NT Registry
(Publisher: 29th Street Press)
Author(s): Tim Daniels
ISBN: 1882419685
Publication Date: 12/01/97

Previous Table of Contents Next


Section VI
Performance

Improving the way parts of your system perform, particularly those parts that affect your users, is a great way to make your life easier. However, sometimes it’s the subtle changes that can enhance system performance the most. In this section, you’ll find specific ways to improve the performance of your general system, your network (including special sections on particular services), your file systems, and your printers.

General System Performance

The tuning parameters in this section tune the general performance of NT, rather than a specific aspect of NT such as file systems or memory. By our definition, these keys tune NT itself, not specific device drivers or user-level applications.

VI-1 Managing the number of threads can help you optimize performance. When NT boots, it creates a pool of worker threads that NT’s kernel, Executive Subsystems, and device drivers use. When one of these components places a work item, such as the Cache Manager’s lazy cache flusher or the Memory Manager’s idle memory zero-filler, in a queue, a thread is assigned to process it. If too many threads are in the pool, they needlessly consume system resources. However, if not enough threads are in the pool, work items are not serviced in a timely manner. Adjust the following two registry keys to change the number of threads.

Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control\Session Manager\Executive
Value Name: AdditionalCriticalWorkerThreads
Data Type: REG_DWORD
Value: <any number>

VI-2 Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control\Session Manager\Executive
Value Name: AdditionalDelayedWorkerThreads
Data Type: REG_DWORD
Value: <any number>

The number you specify in the value increases the number of threads created for the specified work queue. NT has two thread queues. Threads in the Critical Work Queue execute in the low real-time priority range, so they have precedence over most system activity. Threads in the Delayed Work Queue have a slightly lower priority that results in higher latency — the threads that service it compete with other processing for CPU time. The number of threads created for each queue is based on two criteria: whether the system is a server or workstation and how much physical memory the system has. You can’t tell directly whether more threads in a particular situation give you better performance, but you can experiment with benchmark workloads to see if they provide a benefit.

VI-3 To make your foreground windows more responsive than your background windows, in Windows 3.51 you could boost priorities. In NT 4.0 Workstation, instead of boosting priorities, you set quantums to boost foreground windows (Server treats foreground and background windows alike). Change this registry entry to set the boost value.

Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control
Value Name: PriorityControl
Data Type: REG_DWORD
Value: 0

You can also set the boost value with a slider in the Performance tab of the System Control Panel applet. Valid values are shown below.

0 No quantum boost for foreground windows
1 Foreground windows have quantums twice as long as other windows
2 Foreground windows have quantums three times as long as other windows

VI-4 Here’s a tricky registry entry.

Hive: HKEY_LOCAL_MACHINE
Key: System\CurrentControlSet\Control\Session Manager\Executive
Value Name: PriorityQuantumMatrix
Data Type:
Value:

Although you can’t use this value to enhance performance, its name implies that you can. This value actually encodes expiration data about NT Beta and Release Candidates.


Previous Table of Contents Next